﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Data.OleDb;
using DTO;
using DAO;
using BUS;

namespace QL_xxx
{
	/// <summary>
	/// Interaction logic for LapPhieuDatPhong.xaml
	/// </summary>
	public partial class LapPhieuDatPhong : Window
	{
        private List<LoaiPhongDTO> listLoaiPhong;
        public event OnLapPhieuDatPhongThanhCong onDatPhongThanhCong;
		public LapPhieuDatPhong()
		{
			this.InitializeComponent();
			
			// Insert code required on object creation below this point.
		}

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            listLoaiPhong = LoaiPhongBUS.LayDSLoaiPhong();
            LoadComboboxLoaiPhong(listLoaiPhong);

            errorTen.Text = "Bạn phải điền tên vào đây!";
            errorTen.Foreground = Brushes.Red;
            btnLapPhieu.IsEnabled = false;
        }

        private void LoadComboboxLoaiPhong(List<LoaiPhongDTO> listLoaiPhong)
        {
            if (listLoaiPhong.Count > 0 && listLoaiPhong != null)
            {
                foreach (var item in listLoaiPhong)
                {
                    cbxLoaiPhong.Items.Add(item.TenLoaiPhong);
                }
                cbxLoaiPhong.SelectedIndex = 0;
            }
        }

        private void txtTenNguoiDat_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (txtTenNguoiDat.Text.Trim().Length == 0)
            {
                errorTen.Text = "Bạn phải điền tên vào đây!";
                errorTen.Foreground = Brushes.Red;
            }
            else
            {
                errorTen.Text = "OK";
                errorTen.Foreground = Brushes.Green;
            }
        }

        private void errorSL_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (string.Compare(errorTen.Text, "OK") == 0 && string.Compare(errorNgayDat.Text,"OK") == 0)
                btnLapPhieu.IsEnabled = true;
            else
                btnLapPhieu.IsEnabled = false;
        }
        private void errorNgaySinh_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (string.Compare(errorTen.Text, "OK") == 0 && string.Compare(errorNgayDat.Text, "OK") == 0 && cbxLoaiPhong.Text.Trim().Length > 0)
                btnLapPhieu.IsEnabled = true;
            else
                btnLapPhieu.IsEnabled = false;
        }

        private void txtNgayDat_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (txtNgay.Text.Trim().Length == 0 || txtThang.Text.Trim().Length == 0 || txtNam.Text.Trim().Length == 0 && cbxLoaiPhong.Text.Trim().Length > 0)
            {
                errorNgayDat.Foreground = Brushes.Red;
                errorNgayDat.Text = "Bạn phải điền ngày đặt vào đây.";
            }
            else
                if (!Date.KiemTraNgayDatPhong(txtNgay.Text, txtThang.Text, txtNam.Text))
                {
                    errorNgayDat.Foreground = Brushes.Red;
                    errorNgayDat.Text = "Ngày đặt không hợp lệ.";
                }
                else
                {
                    errorNgayDat.Text = "OK";
                    errorNgayDat.Foreground = Brushes.Green; ;

                }
        }

        private void btnLapPhieu_Click(object sender, RoutedEventArgs e)
        {
            PhieuDatPhongDTO phieuDat = new PhieuDatPhongDTO();
            phieuDat.TenNguoiDat = txtTenNguoiDat.Text;
            phieuDat.MaLoaiPhong = LoaiPhongBUS.LayDSLoaiPhong(-1, cbxLoaiPhong.Text)[0].MaLoaiPhong;
            phieuDat.ThoiGianDat = DateTime.Parse(txtThang.Text + "/" + txtNgay.Text + "/" + txtNam.Text);

            int kq = PhieuDatPhongBUS.LapPhieuDatPhong(phieuDat);
            switch (kq)
            {
                case PhieuDatPhongBUS.HetLoaiPhong:
                    {
                        MessageBox.Show("Loại phòng cần đặt đã hết chỗ!");
                        break;
                    }
                case PhieuDatPhongBUS.ThatBai:
                    {
                        MessageBox.Show("Lỗi chưa xác định, vui lòng liên hệ nhà cung cấp!");
                        break;
                    }
                case PhieuDatPhongBUS.ThanhCong:
                    {
                        MessageBox.Show("Xong!");
                        txtTenNguoiDat.Text = "";
                        txtNgay.Text = "";
                        txtThang.Text = "";
                        txtNam.Text = "";
                        onDatPhongThanhCong();
                        break;
                    }
            }

        }

        private void btnThoat_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBoxResult.Yes == MessageBox.Show("Bạn có chắc muốn thoát, thông tin sẽ không được lưu!", "Thông báo.", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No))
                this.Close();
        }

       
      
	}
}